home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / Add-Ons / BBEdit / Column Maker 1.0.1 / column.c < prev    next >
Encoding:
Text File  |  1995-08-19  |  2.3 KB  |  58 lines  |  [TEXT/R*ch]

  1. ar);
  2.     
  3.         
  4.     do 
  5.     {    
  6.         maintain_buttons(theDialog);
  7.         ModalDialog(callbacks->StandardFilter, &item);    
  8.         switch (item)
  9.         {
  10.             case kTab:
  11.                 useSpace=FALSE;
  12.                 break;
  13.                 
  14.             case kSpace:
  15.                 useSpace=TRUE;
  16.                 break;
  17.         }
  18.     } while ((item != 1) && (item != 2));
  19.             
  20.     howMany= sel_start; // there has got to be a better way to get this
  21.     howMany-=callbacks->GetLinePos(callbacks->GetLineNumber(sel_start))    ;
  22.     
  23.     DisposDialog(theDialog);
  24.     SetPort(save_port);
  25.     
  26.     if (item == 1)
  27.     {
  28.  
  29.         end_line = callbacks->GetLastLine();
  30.                 
  31.         callbacks->SetSelection(0, 0x7FFFFFFF, first_char); // select all to undo all
  32.         callbacks->StartProgress("\pChanging Lines…", end_line , TRUE);
  33.         // note that this only appears if there's a "lot" of text, as determined
  34.         // by BBEdit
  35.         if (callbacks->PresetUndo())
  36.         {
  37.             s[0]=1;
  38.             if (useSpace) s[1]=' '; // we want to insert a space
  39.             else s[1]='\t'; // we want to insert a tab
  40.             text = callbacks->GetWindowContents ((WindowPtr) w);            
  41.             
  42.             for ( start_line = 0; start_line < end_line; start_line++)
  43.             {
  44.                 if (callbacks->DoProgress(start_line))
  45.                     break;
  46.  
  47.                 sel_start = callbacks->GetLinePos(start_line);
  48.                 callbacks->SetSelection(sel_start+howMany, sel_start+howMany, -1);
  49.                 callbacks->Insert((char *)&s[1], s[0]); 
  50.             }
  51.             
  52.             callbacks->DoneProgress();
  53.             callbacks->SetUndo();
  54.         }
  55.     }
  56.     SetA4(saved_a4);
  57. }
  58.